package mx.unam.fciencias.actividadesculturales.dbciencias;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 * Clase App que crea o actualiza la base de datos.
 *
 */
public class App {

    /**
     * Metodo que crea la sesion para crear o actualizar la base de datos.s
     * @param args
     * @throws Exception
     */
    public static void main( String[] args ) throws Exception {

        // Create the session factory
        SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory();

        // Obtain the new session object
        Session sess = factory.openSession();
        Transaction tx = null;
        try {
            tx = sess.beginTransaction();
            //do somethig
/*
            Espacio esp = new Espacio();
            esp.setNomb_esp("Lagartijero");
            esp.setCapacidad("2000 personas");
            esp.setUbicacion("Facultad de Ciencias");
            sess.saveOrUpdate(esp);

            List esps = sess.createCriteria(Espacio.class)
                .add( Restrictions.like("nomb_esp", "Lagartijero") )
                .list();

            Actividad act = new Actividad();
            act.setNombre_actividad("Hola");
            act.setHora("2 Hrs");
            act.setFecha_inicio(new Date());
            act.setFecha_termino(new Date());
            act.setEspacios(esps);
            sess.saveOrUpdate(act);

//            UsuarioSistema us = new UsuarioSistema();
//            us.setUsername("lumartin");
//            us.setPasswd("lumartin");
//            us.setNombreCompleto("Luigui Lombardi");
//            us.setUsuarioActivo(true);
//            us.setFechaAlta(new Date());
//            us.setRol(Rol.ADMINISTRADOR);
//            sess.saveOrUpdate(us);

 * */
            tx.commit();
            sess.flush();
        }
        catch (Exception e) {
            tx.rollback();
            throw e;
        }
        finally {
            sess.close();
        }

    }
}
